﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AssetManagementSystem.Model.IDao {
    public interface IStudentDAO {
        /// <summary>
        /// Create a new student in the database, from a 'Student' business object.
        /// </summary>
        /// <param name="student">The student object to be stored in the database</param>
        void CreateStudent(Student student);
        /// <summary>
        /// Retrieve a single student from the database, using its ID as the PKey.
        /// </summary>
        /// <param name="id">Student ID, e.g. u123456</param>
        /// <returns>The 'Student' business object for the requested student.</returns>
        Student GetStudent(string id);
        /// <summary>
        /// Returns a collection of all students found within the database.
        /// </summary>
        /// <returns>A collection of all students found within the database.</returns>
        ICollection<Student> GetAllStudents();
        /// <summary>
        /// Update the details of a student already stored within the database.
        /// </summary>
        /// <param name="student">The new details of the student to update. ID must remain the same as it is the PKey.</param>
        void UpdateStudent(Student student);
        /// <summary>
        /// Delete data for a single student from the database.
        /// </summary>
        /// <param name="id">The student id of the student to be deleted.</param>
        void DeleteStudent(string id);

    }
}
